package br.edu.fanor.geract.dao.impl;

import java.util.List;

import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import br.edu.fanor.geract.dao.EquipeDAO;
import br.edu.fanor.geract.entity.Equipes;

@TransactionAttribute(TransactionAttributeType.REQUIRED)
@Stateless(mappedName="ejb/EquipeDAO")
public class EquipeDAOImpl implements EquipeDAO {
	
	@PersistenceContext	
	private EntityManager em;
	
	public Equipes inserir(Equipes equipe){
		em.persist(equipe);
		return equipe;
	}

	@Override
	public Equipes buscarPorId(Long id) {
		return em.find(Equipes.class, id);
	}

	@Override
	public void remover(Equipes equipe) {
		em.remove(equipe);
	}
	
	@Override
	public void sincronizar(Equipes equipe){
		em.refresh(equipe);
	}

	@Override
	public Equipes atualizar(Equipes equipe) {
		em.merge(equipe);
		return equipe;
	}
	
	public Equipes buscarPorNome(String nome){
		return em.find(Equipes.class, nome);
	}
	
	@SuppressWarnings("unchecked")
	public List<Equipes> buscarEquipesPorNome(String nome){
		Query query = em.createQuery("select e from Equipes e where e.nome like :nome");
		query.setParameter("nome", nome);
		return (List<Equipes>)query.getResultList();
	}

}
